home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / util / cdity / MRQ.lha / MRQ / Source / RCS / mrqwindowclass.c < prev    next >
C/C++ Source or Header  |  2000-10-16  |  2KB  |  95 lines

  1. head    1.1;
  2. access;
  3. symbols;
  4. locks
  5.     msbethke:1.1; strict;
  6. comment    @ * @;
  7.  
  8.  
  9. 1.1
  10. date    2000.01.25.16.48.20;    author msbethke;    state Exp;
  11. branches;
  12. next    ;
  13.  
  14.  
  15. desc
  16. @Implements MRQ's window subclass to handle MRQReqMessages from window
  17. to application and do the HandleEvent input stuff
  18. @
  19.  
  20.  
  21. 1.1
  22. log
  23. @Initial revision
  24. @
  25. text
  26. @/*
  27. ** mrqwindowclass.c
  28. ** Implements MRQ's window subclass to handle MRQReqMessages from window
  29. ** to application and do the HandleEvent input stuff
  30. **
  31. ** Attributes:
  32. **     MRQWINDOWTAG_REQMESSAGE [ S ] : message structure to fill
  33. **
  34. ** ©1997-1999 by Matthias.Bethke <Matthias.Bethke@@gmx.net>
  35. ** You are free to modify this source or use parts of it in your
  36. ** own programs as long as they are distributed as freeware.
  37. */
  38.  
  39. /* $Id:$
  40. **
  41. ** $Log:$
  42. */
  43.  
  44.  
  45. #include <proto/utility.h>
  46. #include <proto/graphics.h>
  47. #include <proto/intuition.h>
  48. #include <exec/memory.h>
  49. #include <lib/mb_utils.h>
  50. #include "mrq.h"
  51. #include "muistuff.h"
  52. #include "mrqwindowclass_private.h"
  53.  
  54. /******************************************************************************/
  55.  
  56.  
  57. static ULONG __saveds __asm MyWindowDispatcher(
  58.     register __a0 struct IClass *cl,
  59.     register __a2 Object *obj,
  60.     register __a1 Msg msg)
  61. {
  62. struct MRQReqMessage *rmsg;
  63.  
  64.     switch(msg->MethodID)
  65.     {
  66.         case OM_SET :
  67.             if(rmsg = (struct MRQReqMessage*)(GetTagData(MRQWINDOWTAG_REQMESSAGE,0,((struct opSet *)msg)->ops_AttrList)))
  68.             {
  69.                 ((struct MRQWinData*)(INST_DATA(cl,obj)))->ReqMsg = rmsg;
  70.             }
  71.             return DoSuperMethodA(cl,obj,msg);
  72.  
  73.         case MUIM_HandleEvent :
  74.             if(((struct MUIP_HandleInput*)msg)->imsg)
  75.             {
  76.                 rmsg = ((struct MRQWinData*)(INST_DATA(cl,obj)))->ReqMsg;
  77.                 rmsg->mrm_RCode = -1;
  78.                 DoMethod(_app(obj),MUIM_Application_ReturnID,rmsg);
  79.             }
  80.             break;
  81.  
  82.         default :
  83.             return DoSuperMethodA(cl,obj,msg);
  84.     }
  85. }
  86.  
  87. /*****************************************************************************/
  88.  
  89. struct MUI_CustomClass *NewMRQWindowClass(void)
  90. {
  91.     return MUI_CreateCustomClass(
  92.         NULL,MUIC_Window,NULL,sizeof(struct MRQWinData),&MyWindowDispatcher);
  93. }
  94. @
  95.